package com.zjq.authoritysystem.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Kimiaaaaa
 * @className RouteVo
 * @Description 路由信息vo，属性对应vue-element-admin框架route属性
 * @date 2023-09-21 16:44
 */
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouteVo {
    /**
     * 路由地址
     */
    private String path;

    /**
     * 路由对应组件
     */
    private String component;

    /**
     * 是否显示
     */
    private Boolean alwaysShow;

    /**
     * 路由名称
     */
    private String name;

    /**
     * 路由meta信息
     */
    private Meta meta;

//    /**
//     * 重定向地址
//     */
//    private String redirect;
//
//    /**
//     * 是否在侧边栏显示
//     */
//    private boolean hidden;

    @Data
    @AllArgsConstructor
    public class Meta {

        /**
         * 标题
         */
        private String title;

        /**
         * 图标
         */
        private String icon;

        /**
         * 角色列表
         */
        private Object[] roles;

//        /**
//         * 是否被<keep-alive>缓存
//         */
//        private boolean noCache;
    }

    /**
     * 子路由
     */
    private List<RouteVo> children = new ArrayList<>();
}
